In data storage systems, a transaction is a sequence of data update operations that should be all completed with respect to a given node. When some data updates are invalid, the transaction cannot be completed, and as such can be aborted. In a distributed storage system (DSS), data update transactions may be initiated by distinct computing nodes on storage devices.
A data update operation in the DSS typically requires a protocol, implemented and controlled by a dedicated centralized node or a coordinator. The coordinator communicates with the other nodes operable in the DSS. Setting one node to operate as a coordinator typically ensures a valid execution of the sequence of data update operations. The selection of the coordinator may be based on an arbitrary selection, a policy of the operating system (OS) of the nodes, a user configuration.
The related art discusses several techniques to ensure a valid execution of a transaction. One of such techniques is based on a two-phase commit (2PC) protocol. This type of protocol identifies by the coordinator whether the rest of the nodes in the DSS can perform a required update operation. When the coordinator receives confirmations from all of the nodes, the coordinator decides to commit the transactions and the transaction is then committed by each node in the DSS. Otherwise the transaction is aborted (upon receiving confirmation from only a portion of the nodes).
Utilization of the coordinator and 2PC protocol does not ensure a complete of execution of transactions. For example, when two transactions are executed at the same time, each of which attempting to update the same data, the sequence of data update operations may be failed. Another disadvantage for utilizing the coordinator and 2PC protocol is that the order of data update operation is not maintained. As such, a problem may arise when that update operation failed on one node designated in the transaction. This may lead to data loss. As the order of update operation is not maintained, the failed operation cannot be easily recovered.
It would therefore be advantageous to provide a technical solution that overcomes the deficiencies of the prior art.